#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project ：PythonData 
@File    ：PTA_6.py
@Author  ：朱志文
@Date    ：2021/12/7 8:53 
'''

'''第6章函数-1 使用函数求特殊a串数列和 (10 分)
给定两个均不超过9的正整数a和n，要求编写函数fn(a,n) 求a+aa+aaa++⋯+aa⋯aa(n个a）之和，fn须返回的是数列和

函数接口定义：

fn(a,n)
其中 a 和 n 都是用户传入的参数。 a 的值在[1, 9]范围；n 是[1, 9]区间内的个位数。函数须返回级数和
裁判测试程序样例：

/* 请在这里填写答案 */

a,b=input().split()
s=fn(int(a),int(b))
print(s)'''
def fn(a,n):
    sum=0;
    for i in range(1,n+1):
        sum+=int(str(a)*i)
    return sum

a,b=input().split()
s=fn(int(a),int(b))
print(s)


'''
第6章函数-2 使用函数求素数和 (20 分)
使用函数求素数和

prime(p), 其中函数prime当用户传入参数p为素数时返回True，否则返回False. PrimeSum(m,n),函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数1<=m<n。

函数接口定义：
在这里描述函数接口：
prime(p)，返回True表示p是素数，返回False表示p不是素数
PrimeSum(m,n)，函数返回素数和
裁判测试程序样例：

/* 请在这里填写答案 */

m,n=input().split()
m=int(m)
n=int(n)
print(PrimeSum(m,n))'''


'''判断是否为素数'''
def prime(p):
    if p<2:
        return False;
    for i in range(2,p):
        if p%i==0:
            return False;
            break
    else:
        return True;

'''素数和'''
def PrimeSum(m,n):
    sum=0;
    if 1<=m<=n:
        for i in range(m,n+1):
            if prime(i):
                sum+=i;
    return sum;

m,n=input().split()
m=int(m)
n=int(n)
print(PrimeSum(m,n))


'''第6章函数-3 使用函数统计指定数字的个数 (20 分)
本题要求实现一个统计整数中指定数字的个数的简单函数。

CountDigit(number,digit )

其中number是整数，digit为[1, 9]区间内的整数。函数CountDigit应返回number中digit出现的次数。

函数接口定义：
在这里描述函数接口。例如：
CountDigit(number,digit ),返回digit出现的次数
裁判测试程序样例：

/* 请在这里填写答案 */

number,digit=input().split()
number=int(number)
digit=int(digit)
count=CountDigit(number,digit )
print("Number of digit 2 in "+str(number)+":",count)'''

def CountDigit(number,digit):
    number_str=str(number)
    digit_str=str(digit)
    count=0;
    for i in number_str:
        if i==digit_str:
            count+=1
    return count

print(CountDigit(202205,2))

'''第6章函数-4 使用函数输出指定范围内Fibonacci数的个数 (20 分)
本题要求实现一个计算Fibonacci数的简单函数，并利用其实现另一个函数,输出两正整数m和n（0<m<n≤100000）之间的所有Fibonacci数的数目。 所谓Fibonacci数列就是满足任一项数字是前两项的和（最开始两项均定义为1）的数列,fib(0)=fib(1)=1。其中函数fib(n)须返回第n项Fibonacci数；函数PrintFN(m,n)用列表返回[m, n]中的所有Fibonacci数。

函数接口定义：
在这里描述函数接口。例如：
fib(n),返回fib(n)的值
PrintFN(m,n)，用列表返回[m, n]中的所有Fibonacci数。
裁判测试程序样例：
在这里给出函数被调用进行测试的例子。例如：
/* 请在这里填写答案 */

m,n,i=input().split()
n=int(n)
m=int(m)
i=int(i)
b=fib(i)
print("fib({0}) = {1}".format(i,b))
fiblist=PrintFN(m,n)
print(len(fiblist))'''
#不会
def fib(n):
    list1=list(range(1000))
    list1[0]=1
    list1[1]=1
    if n>1:
       for i in range(n-1):
           list1[i+2]=list1[i]+list1[i+1]
       return list1[i+2]
    elif n==0 or n==1:
        return 1

def PrintFN(m,n):
    list2=[]
    for i in range(m,n+1):
        for j in range(1000):
            if fib(j)>i:
                if fib(j-1)==i:
                    list2.append(i)
                break
    return list2



'''
第6章函数-5 使用函数求余弦函数的近似值 (20 分)
本题要求实现一个函数，用下列公式求cos(x)近似值，精确到最后一项的绝对值小于eps（绝对值小于eps的项不要加）：


函数接口定义：funcos(eps,x ),其中用户传入的参数为eps和x；函数funcos应返回用给定公式计算出来，保留小数4位。

函数接口定义：
函数接口:
funcos(eps,x ),返回cos(x)的值。'''

def fact(n):
    sum=1
    for i in range(1,n+1):
        sum*=i
    return sum

def funcos(eps,x ):
    cos=0;
    i=0
    while x**i/fact(i)>eps or x**i/fact(i)==eps:
        i+=2
    for j in range(0,i,2):
        if j%4==0:
            cos +=  x ** j / fact(j)
        else:
            cos -= x ** j / fact(j)
    return cos

eps=float(input())
x=float(input())
value=funcos(eps,x )
print("cos({0}) = {1:.4f}".format(x,value))

'''
第6章函数-6 缩写词 (20 分)
缩写词是由一个短语中每个单词的第一个字母组成，均为大写。例如，CPU是短语“central processing unit”的缩写。

函数接口定义：
acronym(phrase);
phrase是短语参数，返回短语的缩写词
裁判测试程序样例：

/* 请在这里填写答案 */
phrase=input()
print(acronym(phrase))'''

def acronym(phrase):
    phraseList=list(phrase.split(' '))
    abbre=''
    for i in phraseList:
        abbre+=i[:1]
    return abbre.upper()

print(acronym('central  processing  unit'))